<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>事件流理论</title>
    <style>
        .father{
            width: 300px;
            height: 300px;
            background-color: pink;
            margin: 40px auto;
        }
        .son{
            width: 200px;
            height: 200px;
            background-color: blueviolet;
            color: #fff;
            text-align: center;
        }
    </style>

</head>
<body>
    <!-- 事件传播的过程就叫事件流
    事件流分为三个阶段 
                    捕获阶段       从上到下
                    当前目标阶段 
                    冒泡阶段       从小到大 从里往外
        注意：js代码中只能执行捕获或者冒泡其中一个阶段
              onclick和attachEvent只能得到冒泡阶段
              addEventListener(type,listener,useCapture)第三个参数是 true 表示在事件捕获阶段调用事件处理程序 
                                                        如果是flase（默认值）表示在事件冒泡阶段调用事件处理程序
              实际开发中我们很少使用事件捕获 我们更关注事件冒泡
              有些事件是没有冒泡的比如  onblur onfocus onmouseenter onmouseleave
              
     -->


     <div class="father">
         <div class="son">son盒子</div>
     </div>

     <script>
        //  DOM事件流的三个阶段
        // 捕获阶段  document---html---body---father---son
        // var son = document.querySelector('.son');
        // son.addEventListener('click',function(){
        //     alert('我是你爸爸');
        // },true)
        // var father = document.querySelector('.father');
        // father.addEventListener('click',function(){
        //     alert('我是你爷爷');
        // },true)


        // 冒泡阶段  son---father---body---html---document
        var son = document.querySelector('.son');
        son.addEventListener('click',function(){
            alert('我是你爸爸');
        },false)
        var father = document.querySelector('.father');
        father.addEventListener('click',function(){
            alert('我是你爷爷');
        },false)
        var son = document.querySelector('.son');
        son.addEventListener('click',function(){
            alert('我是你爸爸');
        },false)
        var father = document.querySelector('.father');
        father.addEventListener('click',function(){
            alert('我是你爷爷');
        },false)
        document.addEventListener('click',function(){
            alert('你们都不是');
        })
     </script>
</body>
</html>